#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{
    // 创建一个 消息对话框
    QMessageBox* msg = new QMessageBox();
    // 设置对话框标题
    msg->setWindowTitle("警告");
    // 设置对话框内容
    msg->setText("是否需要保存？");
    // 设置对话框图标
    msg->setIcon(QMessageBox::Warning);
    // 设置对话框的按钮
    // 可以添加自定义按钮，不使用内置的按钮
    // QPushButton* button = new QPushButton("按钮", msg);
    // msg->addButton(button, QMessageBox::AcceptRole);  // 表明这个按钮表示 接受 的意思
    // 如果将来想要表示点击这个按钮执行什么操作，可以关联槽函数
    // connect()
    // 可以使用 QMessageBox 内置的按钮
    msg->setStandardButtons(QMessageBox::Save | QMessageBox::Cancel);
    // 消息对话框 一般是模态的
    // 弹出模态对话框，当对话框处于弹出状态时，代码就会在 exec 这里阻塞，一直到对话框关闭
    // 当用户点击按钮，使对话框关闭之后，此时就能通过 exec 的返回值，判断点击了什么按钮
    int val = msg->exec();
    if(val == QMessageBox::Save) qDebug() << "执行了保存操作";
    else if(val == QMessageBox::Cancel) qDebug() << "执行了取消操作";
    // 也是点击关闭按钮的时候释放内存
    msg->setAttribute(Qt::WA_DeleteOnClose);
}
